package patterns.composite;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by lenovo on 2016/11/25 0025.
 * 员工类，组合模式的实体类，不同与普通的实体类，该类需要有一个list列表，用于存储子层次对象。
 */
public class Employee {
    private String name;//姓名
    private String dept;//部门
    private int salary;//薪资

    private List<Employee> subordinates;//用于存储子层次对象的list列表

    //构造函数，初始化参数
    public Employee(String name, String dept, int salary) {
        this.name = name;
        this.dept = dept;
        this.salary = salary;
        subordinates = new ArrayList<>();
    }

    //用于添加对象到该实体类的某个对象中
    public void add(Employee e){
        subordinates.add(e);
    }
    //移除对象
    public void remove(Employee e){
        subordinates.remove(e);
    }
    //获取子部门所有对象信息
    public List<Employee> getSubordinates(){
        return subordinates;
    }
    //显示对象属性信息
    @Override
    public String toString() {
        return "Employee{" +
                "name='" + name + '\'' +
                ", dept='" + dept + '\'' +
                ", salary=" + salary +
                '}';
    }
}
